#ifndef CORREA_H_
#define CORREA_H_

#include "Elemento.h"

class Correa: public Elemento {
private:
	Elemento* elementoInicial;
	Elemento* elementoFinal;
	int cantClicks;
	pair<double, double> inicioCorrea;
	pair<double, double> finCorrea;
public:
	Correa(double x, double y, double ancho, double alto, string pathImagen);
	virtual ~Correa();
	void mover(double centroX, double centroY);
	bool dejarEnCanvas(double x, double y);
	int seSuperpone(Elemento*);
	void superponer(Elemento*);
	void dibujar(double x, double y, double ancho, double alto,
			SDL_Renderer* renderer);
	bool agregaEnVacio();
	bool tieneVertices();
	void setPosicionInicial(double x, double y);
	void setPosicionFinal(double x, double y);
	pair<Elemento*, Elemento*> obtenerExtremos();
	pair<double, double> getPosicionInicial();
	pair<double, double> getPosicionFinal();
	void jointearElemento(b2World* world);
	bool esBasico();
	void agregarCorreaInicial(Elemento* correa);
	void agregarCorreaFinal(Elemento* correa);
	void inicializarCorreaDibujado(double xini, double yini, double xfin,
			double yfin);
	bool esAnimable();
	bool tieneElementoInicial();
	bool entraEnCinta(list<Elemento*>*lista);
	bool sinReferencias();
};

#endif /* CORREA_H_ */
